package com.zhz.common.enums;

import com.zhz.common.exception.assertion.BizExceptionAssert;
import com.zhz.common.tool.mybatisplus.base.core.enums.IEnum;
import lombok.AllArgsConstructor;

/**
 * @author zhouhengzhe
 * @date 2023/3/29
 */
@AllArgsConstructor
public enum BizResponseEnum implements IEnum<Integer>, BizExceptionAssert {

    OK(200, "请求/操作成功"),
    FAIL(500, "请求成功但是服务异常"),
    UNAUTHORIZED(401, "未登录或token已经失效"),
    FORBIDDEN(403, "没有权限"),
    SERVER_ERROR(500, "服务器异常"),
    REQUEST_ERROR(400, "请求异常"),
    NOT_SUPPORT_ENUM(1001, "不支持的枚举值"),
    NOT_EXIST_COMPANY_INFO(1002, "不存在公司信息"),
    LOCK_NOT_YET_HOLD(1003, "系统繁忙，请稍后重试"),
    /**
     * 获得锁后执行业务逻辑过程中, 锁异常释放, 即不再持有锁
     */
    LOCK_NO_MORE_HOLD(1004, "系统繁忙，请稍后重试"),
    PERMISSION_NOT_EXIST(1005, "权限不存在"),
    ROLE_NOT_EXIST(1006, "角色不存在"),
    GT_0_AND_LT_365(1007, "日期参数只能介于0-365天之间"),
    BASE_VALID_PARAM(1008, "转换日期失败"),
    USER_NOT_EXIST(1009, "用户不存在"),
    MOBILE_OR_PASSWORD_ERROR(1010, "用户名或密码错误"),
    MOBILE_EXIST(1011, "手机号已存在"),

    /**
     * 企业信息详情
     */
    USER_COMPANY_PERSONAL_NOT_EXIST(1100, "不存在企业信息详情"),
    USER_COMPANY_JOBS_NOT_EXIST(1101, "不存在岗位信息"),

    USER_PERSONAL_INFO_NOT_EXIST(1102, "员工个人信息模板不存在"),

    USER_RESIGNATION_NOT_EXIST(1103, "离职表单读取不存在"),
    ;

    /**
     * 返回码
     */
    private final int code;
    /**
     * 返回消息
     */
    private final String message;

    /**
     * 获取编码
     *
     * @return
     */
    @Override
    public Integer getCode() {
        return this.code;
    }

    /**
     * 获取描述
     *
     * @return
     */
    @Override
    public String getMessage() {
        return this.message;
    }
}
